package com.UnionPayCenter.account.entity;

import com.UnionPayCenter.account.enums.AccountTypeEnum;
import com.UnionPayCenter.account.enums.BillDutyEnum;
import com.UnionPayCenter.account.enums.ChargeStatusEnum;
import com.UnionPayCenter.account.enums.PayChannelEnum;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;

@Getter
@Setter
public class ChargeBill {

    /**
     * 数据库自增id
     */
    private Long id;

    /**
     * 流水号
     */
    private String sn;

    /**
     * 第三方流水号
     */
    private String thirdSn;

    /**
     * 用户Id
     */
    private Integer userId;

    /**
     * 用户手机号码
     */
    private String mobile;

    /**
     * 店铺Id
     */
    private Integer shopId;

    /**
     * 充值职责
     */
    private BillDutyEnum billDuty;

    /**
     * 账户类型
     */
    private AccountTypeEnum accountType;

    /**
     * 账户Id
     */
    private Long accountId;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 充值类型,1汇款、2网银、3账户验证
     */
    private Integer chargeType;

    /**
     * 充值渠, wx/alipay/bank。。。
     */
    private PayChannelEnum channelId;

    private String bankType;

    private String bankCode;

    private String bankName;

    private String bankAddrNo;

    private String bankProvince;

    private String bankCity;

    private String bankArea;

    private String bankCardNo;

    private String bankCardName;

    /**
     * 充值原金额
     */
    private Integer totalAmount;

    /**
     * 金额
     */
    private Integer amount;

    /**
     * 活动金额
     */
    private Integer activityAmount;

    /**
     * 收款方是否是平台客户: 1--是/0--否
     */
    private Integer payeeIfkftCust;

    /**
     * 收款方账户类型: 0平台内虚户,1平台内实户,2平台外实户
     */
    private String payeeAccountType;

    /**
     * 收款方客户号, 商户id
     */
    private String payeeMerchantId;

    /**
     * 收款子账户id, 备用字段
     */
    private String saccId;

    /**
     * 收款方平台户名
     */
    private String payeeCustName;

    private String payeeBankType;

    private String payeeBankCode;

    private String payeeBankName;

    private String payeeBankAddrNo;

    /**
     * 收款开户行省
     */
    private String sbankProv;

    private String sbankArea;

    private String payeeBankCardNo;

    private String payeeBankCardName;

    /**
     * 交易类型: 8310帐户验证(打款验证，报文验证),卡通协议签订,
     * 8301充值(网银充值、卡通充值),1301即时到帐支付(网银支付、卡通支付、平台帐户支付),1302担保交易支付(网银支付、卡通支付、平台帐户支付),1303担保交易支付确认(收款人确认、付款人确认),8022担保交易退款申请,8023担保交易退款确认,
     * 1001实时代扣,2001批量代扣,1002实时代付,2003批量代付,8304实时提现,8303普通提现,8021直接退款
     */
    private String transactionType;

    private String note;

    private String bankResultCode;

    private String bankResultNote;

    private String resultCode;

    private String resultNote;

    private Date bankTime;

    private ChargeStatusEnum state;

    private String checkState;

    private String workdate;

    private String settledate;

    private String checkdate;

    private String setId;

    private String pzcode;

    private String pgurl;

    private String bgurl;

    /**
     * 充值后的余额
     */
    private Integer balance;

    /**
     * 充值前的余额
     */
    private Integer originalBalance;

    /**
     * 备注
     */
    private String remark;

    /**
     * 优惠券Id
     */
    private String discountId;


    private Date createTime;

    private Date startCreateTime;

    private Date endCreateTime;




    private Date updateTime;
}